package com.yuda.campsite.mapper;

import com.yuda.campsite.domain.CampsiteConf;
import com.yuda.common.core.web.domain.AjaxResult;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Service;

import java.util.*;

/**
 * 【请填写功能名称】Mapper接口
 *
 * @author wyn
 * @date 2021-09-23
 */
public interface CampsiteConfMapper {
    /**
     * 查询【请填写功能名称】
     *
     * @param id 【请填写功能名称】ID
     * @return 【请填写功能名称】
     */
    public CampsiteConf selectCampsiteConfById(Long id);

    /**
     * 查询【请填写功能名称】列表
     *
     * @param campsiteConf 【请填写功能名称】
     * @return 【请填写功能名称】集合
     */
    public List<CampsiteConf> selectCampsiteConfList(CampsiteConf campsiteConf);

    /**
     * 新增【请填写功能名称】
     *
     * @param campsiteConf 【请填写功能名称】
     * @return 结果
     */
    public int insertCampsiteConf(CampsiteConf campsiteConf);

    /**
     * 修改【请填写功能名称】
     *
     * @param campsiteConf 【请填写功能名称】
     * @return 结果
     */
    public int updateCampsiteConf(CampsiteConf campsiteConf);

    /**
     * 删除【请填写功能名称】
     *
     * @param id 【请填写功能名称】ID
     * @return 结果
     */
    public int deleteCampsiteConfById(Long id);

    /**
     * 批量删除【请填写功能名称】
     *
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteCampsiteConfByIds(Long[] ids);

    /**
     * 通过状态和名称查询营地
     */
    public List<CampsiteConf> xuanZhe(@Param("params") Map<String, Object> params, @Param("onOff") String onOff, @Param("name") String name);

    /**
     * 开启营地
     */
    public int kaiqi(@Param("onOff") String onOff, @Param("name") String name);

    /**
     * 关闭营地
     */
    public int guanbi(@Param("onOff") String onOff, @Param("name") String name);

    /**
     * 查看报名成功接口
     */
    public Integer BaoMingSuccess();

    /**
     * 查看营地名字列表
     */
    public List<String> yingdiName();

    @Select("select 1 from campsite_conf where name =#{name} and id !=#{id} limit 1")
    String nameExists(CampsiteConf campsiteConf);

    /**
     * 逻辑删除营地
     */
    Integer tombstone(@Param("id") Long id);

    @Select("select id from campsite_conf where dept_id = #{deptId}")
    List<Integer> getCampIdByDetpId(Long deptId);
    /**查询学生的Phone*/
    String SelectPhone(@Param("idCard") String idCard);
    /**查看学生的姓名*/
    String SelectName(@Param("idCard") String idCard);
    /**查看营地的名称*/
    String SelectYingDiName(@Param("campsiteId") String campsiteId);


    @Select("select reduction from invitation_code_classification where campsite_id = #{campsiteId} and name =#{name}")
    String getRegistrationFee(@Param("name") String name,@Param("campsiteId") Integer campsiteId);

}
